java 同步通信互斥锁

package test.run;

public class TraditionalThreadCommunication {

private Business bus = new Business();

public static void main(String[] args) {
final TraditionalThreadCommunication a=new TraditionalThreadCommunication();

new Thread(new Runnable() {

public void run() {
for(int i=1;i<=50;i++){
a.bus.sub(i);
}
}
}).start();
for(int i=1;i<=50;i++){
a.bus.maina(i);
}

}

class Business{
private boolean bS = true;
public synchronized void sub(int i ) {
while(!bS){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
for(int j=1 ; j<10; j++){
System.out.println("子线程"+j+"循环次数:"+i);
}
bS = false;
this.notify();
}
public synchronized void maina(int i ) {
while(bS){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

for(int j=1 ; j<20; j++){
System.out.println("父线程"+j+"循环次数:"+i);
}
bS = true;
this.notify();
}
}
}

posted @ 2016-05-23 18:32  Jessi_JIA  阅读(181)  评论(0编辑  收藏  举报